Typically, when counters are implemented with respect to networking applications, a fixed amount of memory is allocated to each counter such that each counter has the same amount of memory with respect to a storage system. The allocation of a fixed amount of memory for each counter is generally an inefficient use of memory assets, as very few counters generally have large values and a majority of counters generally have small values. When counters are designed to accommodate a case in which some counters may be very large, a large percentage of memory bits in a storage system may be wasted, e.g., when the fixed amount of memory for each counter is allocated to support very large counters which do not occur very often.